__version__ = "1.1.0"
#shp_2024-12-16 新增 快速创建get set
def generate_get_set(prop):
    def decorator(cls):
        # 创建getter方法
        def get(self):
            return getattr(self, "_" + prop)

        # 创建setter方法
        def set(self, value):
            setattr(self, "_" + prop, value)

        # 为类添加getter和setter方法
        setattr(cls, prop, property(get, set))
        return cls

    return decorator

# 创建接受元类
class GetSetMeta(type):
    def __new__(cls, name, bases, attrs):
        # 遍历类的属性
        for attr, value in attrs.items():
            # 判断是否为属性（排除特殊方法和类变量）
            if not attr.startswith("__") and not callable(value):
                # 使用装饰器为属性生成getter和setter方法
                attrs[attr] = generate_get_set(attr)(value)

        return super().__new__(cls, name, bases, attrs)